#!/bin/bash

source "./config.env"

echo "🛑 正在停止饥荒服务..."

# 1. 杀游戏主进程
pkill -9 -f "$server_bin"

# 2. 查找并杀掉通过 start.sh 启动的所有游戏进程（nohup 启动的）
pids=$(pgrep -f "$server_bin")
if [[ -n "$pids" ]]; then
    echo "🔍 发现游戏相关进程 PID: $pids，尝试强制终止..."
    kill -9 $pids
fi

# 3. 查找并杀掉 start.sh 启动脚本相关的 nohup 进程（也可能是 bash 进程）
start_pids=$(ps -ef | grep "[n]ohup.*${run_shared[0]}" | awk '{print $2}')
if [[ -n "$start_pids" ]]; then
    echo "🔍 检测到 start.sh 启动的后台进程 PID: $start_pids，尝试强制终止..."
    kill -9 $start_pids
fi

# 4. 等待清理
sleep 1

# 5. 检查是否有残留
if pgrep -f "$server_bin" > /dev/null || [[ -n "$start_pids" ]]; then
    echo "❌ 有残留进程，请手动处理："
    ps -ef | grep "$server_bin"
    ps -ef | grep "${run_shared[0]}"
else
    echo "✅ 饥荒服务已完全停止"
fi
